package MAIN;
//笔试强训第25天
/*JVM的方法区和堆区都是线程共享的*/
/*for(1.初始化条件；2.判断终止；3.循环迭代条件) { //4.循环体代码 }，for循环执行的顺序是
* 1 2 4 3 ，其中123代码语句是可以使用方法的，但是必须要有返回值*/
/*java编译出来的目标文件（.class文件）是和操纵系统无关的，面向JVM的字节码文件（二进制文件）*/
/*Java在运行时才进行翻译指令，正确，分为两个时期，编译时期和运行时期，
编译：javac -- .java -> .class， 运行时期：java JVM实际上此时会把class文件翻译成操作系统运行的
机器码。   Java编译出来的目标文件，也不是可以运行在任意的jvm上的，适合JVM的版本有关系的*/
/*线程的终止：1.线程的任务执行完毕（正常终止） 2.线程执行过程中出现异常（异常终止），注：当线程调用sleep
* 方法时，此时只是让线程从运行态进入阻塞态*/
/*线程的启动不能直接调用run()方法，要调用Thread类提供的start方法，执行start方法才会启动一个子线程，
* 直接调用run()，没有启动新的线程，相当于调用普通的方法*/
/**/

import java.util.Scanner;

//编程题
public class Main25 {
    public static void main2(String[] args) {
        //树根
        /*字符'0'-'9'时，可以使用字符和字符相减操作，即可都得到数字的差值
        * 如'9'-'6' 返回值即为9-6的结果3。  所以字符'0'-'9', 要取int
        * 值，使用字符-'0'即可，如字符’5‘，要获取数字值5，使用'5'-'0'即可*/
        Scanner scan = new Scanner(System.in);
        while (scan.hasNextInt()) {
            String str = scan.nextLine();
            while (str.length() > 1) {
                int sum = 0;
                for (int i = 0; i < str.length(); i++) {
                    sum += str.charAt(i) - '0';
                }
                str = String.valueOf(sum);
            }
            System.out.println(str);
        }
    }

    public static void main(String[] args) {
        //星际密码
        //矩阵 * 矩阵 的计算方式：第一个矩阵的第一行 * 第二个矩阵的第一列作为新矩阵的第一行第一列的结果
        //然后以此类推即可
        int[] nums = new int[10001];
        nums[1] = 1;
        nums[2] = 2;
        for (int i = 3; i < 10001; i++) {
            //把数组的中元素都存放上密码，取密码的时候直接按照下标输出即可
            nums[i] = nums[i-1] + nums[i-2];
            nums[i] = nums[i] % 10000;//超出四位数的密码只取前四位
        }
        Scanner scan = new Scanner(System.in);
        while (scan.hasNext()) {
            StringBuilder sb = new StringBuilder();
            int n = scan.nextInt();//对应的输入有多少组数据
            for (int i = 0; i < n; i++) {
                int xi = scan.nextInt();//每一个数据的第i项应该输出什么结果74
                sb.append(String.format("%04d",nums[xi]));
            }
            System.out.println(sb);
        }
    }
}
